import axios from 'axios'
import Cookies from 'js-cookie'

// 创建实例 并返回一个实例
const request = axios.create({
  baseURL: 'http://localhost:3000/api',
  timeout: 10000
})

// 添加拦截器 （将实例进行改名）
// 添加请求拦截器
request.interceptors.request.use(function (config) {
  // config前端到后台 即前端要给后台发送什么数据
  // 利用headers.common添加头信息 后端也要到headers进行修改信息
  config.headers.common.token = Cookies.get('token')
  // loading... 加载中 在响应之后进行删除这个loading
  // 在发送请求之前做些什么
  // console.log('请求拦截器', config)
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

// 添加响应拦截器
request.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  // console.log('响应拦截器', response)
  // 删除loading
  // response.data是后台响应之后给我们进行返回的数据
  // 后端验证token如果状态是10086那么登陆失效 跳转到登陆
  if (response.data.state === 10086) {
    // location.href = '/login'
    // console.log('10086 走失败不让路由跳转')
  }
  return response
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error)
})

// 将axios实例(request)暴露出去

export default request
